<!-- vi: set ts=4 sw=4 : -->
<!-- vim: set tw=75 : -->

<HTML>
<head>
<title>Metamod FAQ</title>
</head>
<body>

<h1>Metamod FAQ
</h1>

<p><a name=modsupport>
<b> Please add support for <i>(some)</i> mod.</b>
</a><p> <blockquote>
Please see <a href="gamesupport.html#requirements">game support
requirements</a> in the documentation.
</blockquote>


<p><a name=bots>
<b> How do I use bots with Metamod?</b>
</a><p> <blockquote>
If the bot is <i>not</i> a Metamod plugin, then you will need to tell
Metamod to use your bot as the gamedll, by specifying it on the hlds
command line with the "+localinfo mm_gamedll" option.  See the 
<a href="metamod.html#localinfo">Metamod docs</a>.  See also the 
<a href="http://www.adminmod.org/help/online/Configuration/How_to_Use_Bots_with_MetaMod_AM_2.50_and_up.htm">AdminMod docs</a>.
</blockquote>


<p><a name=corrupt>
<b> The download links give corrupt files.</b>
</a><p> <blockquote>
I think what you're observing is that your web client is quietly
uncompressing the file, but not updating the name of the downloaded file to
reflect this.  In particular, some web clients will silently decompress
(gunzip) files _without_ removing the ".gz" from the filename, so you'll
end up with a file "metamod_i386.so.gz" which is _really_
"metamod_i386.so", and so trying to gunzip it will produce an error ("not
in gzip format").  Try running "file" on the resulting file to see what the
OS thinks it is.  Or, where you don't have "file" (ie windows), just look
at the file size - it should be pretty indicative of whether the file is
still compressed or not.
</blockquote>


<p><a name=install>
<b> How do I install Metamod?</b>
</a><p> <blockquote>
This is covered briefly in the <a href="metamod.html#installation">Metamod
docs</a>.  Typically, though, Metamod is installed as part of some major
plugin, like <a href="http://www.adminmod.org/">AdminMod</a>.  There is
also some discussion of installing Metamod by hand in the <a href="http://www.adminmod.org/help/online/Installing/Manual_Installation_-_Walk-Through.htm">AdminMod docs</a>.  If you already have Metamod installed and merely want
to update it, this requires only replacing the .so/.dll with the latest
version from the <a href="http://metamod.org/">webpage</a>.
</blockquote>


<p><a name=adminmod>
<b> I'm having trouble with AdminMod.</b>
</a><p> <blockquote>
You'll need to ask your AdminMod questions on the <a href="http://www.ozforums.com/forumdisplay.php?forumid=143">AdminMod forums</a>.
</blockquote>


<p><a name=hlcoding>
<b> How do I do <i>(something)</i> in a Metamod plugin?</b>
</a><p> <blockquote>
Generally speaking, a Metamod plugin works very much like an Half-Life Game
Mod, since all it's doing is making the same calls to the same SDK that the
Game Mod does.  So, the question typically isn't "how do I do this in
Metamod?" but instead "how do I do this in an Half-Life Mod?", and is best
asked in a HL SDK Programming forum/mailinglist (see <a href="links.html">related links</a> 
and especially <a href="http://planethalflife.com/botman/MOD_FAQ.shtml">Botman's MOD FAQ</a>).  
Once you figure out how it would normally be done in a Game Mod, figuring
out how to do it in Metamod is relatively straightforward.  
<p>
However, if you have questions on how to convert a piece of code from HLmod
to Metamod plugin, then I can provide some pointers, or you can ask on the
<a href="http://groups.yahoo.com/group/metamod/">Metamod mailing list</a>.
And of course, if you have questions about things in the code specific to
Metamod (ie things mentioned in the <a href="coding.html">Metamod Coding
docs</a>) feel free to ask me or on the mailing list.
</blockquote>


<p><a name=examples>
<b> Is there a tutorial or example of how to write a Metamod plugin?</b>
</a><p> <blockquote>
The sourcecode includes a couple of plugins that can be used as examples.
The "stub" plugin is the bare basics of what a plugin needs.  The "trace"
plugin provides an example of hooking _every_ SDK function.  The "wdmisc"
plugin provides a couple of basic useful features.  You can also look at
several of the other plugins out there for more examples.
<p>
Note that the example plugins in the Metamod sourcecode show how to use
Metamod to interface with Half-Life code, but they mostly assume you
already know how to write Half-Life code.  If you need examples or info on
how to write Half-Life code itself, you'll need to go look through the HL
SDK programming websites (see <a href="links.html">related links</a>
and <a href="http://planethalflife.com/botman/MOD_FAQ.shtml">Botman's MOD FAQ</a>).  
</blockquote>


<p><a name=pluginlink>
<b> I have (or know of) a Metamod plugin not listed on the webpage.</b>
</a><p> <blockquote>
Send me the information about the plugin (name, author, description, URL),
and I'd be happy to provide a link from the webpage.
</blockquote>


<p><a name=msvc>
<b> I'm having trouble compiling under MSVC.</b>
</a><p> <blockquote>
Please note that I do not use MSVC, so I can't help a lot with using that
compiler.  I do all my development under linux, using gcc for linux
binaries and <a href="http://www.mingw.org/">mingw32</a> for windows
binaries.  The sourcecode does include an MSVC project file for Metamod, as
well as a project file for the stub plugin, both mostly as examples.  They
<i>should</i> work, and indeed did work the last time I dug up MSVC to test
them.  That said, there are a few folks on the <a href="http://groups.yahoo.com/group/metamod/">Metamod mailing list</a> that
do use MSVC, so you might find some assistance there.
</blockquote>


<p><a name=gpl>
<b> If I create a Metamod plugin, does it have to be open source?</b>
</a><p> <blockquote>
Generally speaking, yes.  The way the GPL is interpreted, plugins of a GPL
program need to be also GPL.  See also the FAQ entry on the GNU site about
<a href="http://www.gnu.org/licenses/gpl-faq.html#GPLAndPlugins">plugins of a GPL program</a>.
</blockquote>


<p><a name=otherengines>
<b> How about a port of Metamod to other engines like Q3, Unreal, etc?</b>
</a><p> <blockquote>
I haven't looked into it myself, but several folks on the AdminMod team
(from which Metamod was derived) had looked at porting to other games like
Q3 and UT, and determined that those engines either didn't provide the
necessary API hooks, or that they already provided a suitable method for  
extending functionality.  So, I wouldn't expect to see a version of Metamod
for those.  Perhaps for some other future engines, although I believe most
modern engines are now providing their own method for extensions or
plugins, so that a third-party solution like Metamod wouldn't be necessary.
<p>
If Half-Life 2 ever sees the light of day, I expect I'd look seriously at
porting to that - unless, of course, Valve ends up providing their
<b>own</b> plugin framework themselves. :)
</blockquote>

<p>
<hr>

</body>
</HTML>
